<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
   <script>
        //&& 都是对的就是对的 一个错就全错的
        //按照顺序来的 第一个对了 就看第二个 返回二
        //第一个错的 直接结束 返回一
        //逻辑与操作可以应用于任何类型的操作数，而不仅仅是布尔值。在有一个操作数不是布尔值的情况下，逻辑与操作就不一定返回布尔值
        var a1= NaN && 12;
        var a2= 12 && 12;
        console.log(a1);
        console.log(a2);
        // ||  有一个对的就是对的  两个都错就是错的
        //与逻辑与操作符相似，逻辑或操作符也是短路操作符。也就是说，如果第一个操作数的求值结果为true，就不会对第二个操作数求值
        var a3= 12 || NaN;
        var a4= NaN || 12;
        console.log(a3);
        console.log(a4);
        //逻辑非操作符由一个叹号 ! 表示，可以应用于ECMAScript 中的任何值。无论这个值是什么数据类型，这个操作符都会返回一个布尔值。
//        逻辑非操作符首先会将它的操作数转换为一个布尔值(见数据类型转换一章)，然后再对其求反

        var a5=!false;
        var a6=![]; //转化为boolean 在去反

        
   </script>



</body>
</html>